package com.qiaoba.module.job.service;

import com.qiaoba.api.job.entity.dto.SysJobDTO;
import com.qiaoba.api.job.service.SysJobApiService;
import com.qiaoba.module.job.entity.SysJob;
import com.qiaoba.module.job.entity.param.SysJobParam;

import java.util.List;

/**
 * 定时任务 服务层
 *
 * @author ailanyin
 * @date 2023-09-03 21:50:20
 */
public interface SysJobService extends SysJobApiService {

    /**
     * 更新定时任务
     *
     * @param dto dto
     * @return 结果
     * @throws Exception Exception
     */
    int updateById(SysJobDTO dto) throws Exception;

    /**
     * 暂停任务
     *
     * @param sysJob 调度信息
     * @return 结果
     */
    int pauseJob(SysJob sysJob);

    /**
     * 恢复任务
     *
     * @param sysJob 调度信息
     * @return 结果
     */
    int resumeJob(SysJob sysJob);

    /**
     * 查询列表
     *
     * @param param 查询条件
     * @return 任务列表
     */
    List<SysJob> selectList(SysJobParam param);

    /**
     * 查询定时任务
     *
     * @param jobId 任务ID
     * @return 定时任务
     */
    SysJob selectById(String jobId);

    /**
     * 查询定时任务
     *
     * @param jobId     任务ID
     * @param allowNull 是否允许空
     * @return 定时任务
     */
    SysJob selectById(String jobId, boolean allowNull);
}
